﻿using JNPF.Basics.Models;
using JNPF.Basics.Models.VisualDev;
using JNPF.Basics.Models.VisualDevModelData;
using JNPF.Utils;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace JNPF.Basics.Logic
{
    public interface VisualDevModelDataIService
    {
        Task<PageResult<Dictionary<string, object>>> GetListResult(VisualDevEntity data, VisualDevModelListQueryInput input);
        Task<List<VisualDevModelDataEntity>> GetList(string modelId);
        Task<PageResult<VisualDevModelDataEntity>> GetList(string modelId, VisualDevModelListQueryInput input);
        Task<VisualDevModelDataInfoOutput> GetTableInfo(string id, VisualDevEntity visualdevEntity);
        Task<VisualDevModelDataEntity> GetInfo(string id);
        Task<string> autoFeilds(VisualDevEntity entity, string data);
        Task<int> Create(VisualDevEntity visualdevEntity, VisualDevModelDataCrForm visualdevModelDataCrForm);
        Task<int> Update(string id, VisualDevEntity visualdevEntity, VisualDevModelDataCrForm visualdevModelDataUpForm);
        Task<int> TableDelete(string id, VisualDevEntity visualdevEntity);
        Task<int> Delete(VisualDevModelDataEntity entity);
        Task<PageResult<Dictionary<string, object>>> exportData(List<VisualDevModelDataEntity> list, VisualDevModelListQueryInput input, VisualDevEntity entity);
        Task<string> GetInfoDataChange(string id, VisualDevEntity visualdevEntity);

        Task<VisualDevModelDataInfoOutput> GetInfo(string id, VisualDevEntity visualdevEntity);

        List<FieldsModel> TemplateDataConversion(List<FieldsModel> fieldsModelList);
    }
}
